void main() {
  print('Hello Dart1');
  //1.var定义一个变量－强类型语音定义过的类型不允许修改
  var name = '小明';
  // 2.类型变量=值
  String name1 = '小明';
  print(name);
  print(name1);
  var a = 1;
  var b = 2;
  //3.定义一个常量
  // 1.const 常量
  // 2.final 常量
  // const count = a + b;//不允许变量运算
  final count = a + b;
  const PI = 3.14;
  final PI1 = 3.14;
  print(PI);
  print(PI1);
  print(count);
  // 1、定义一个数字 num既可以存小数也可以存整数
  num num1 = 1;
  num1 = 1.1;
  print(num1);
  // 2、定义一个整数 int只能存整数
  int num2 = 2;
  // num2 = 2.2;
  print(num2);
  // 3、定义一个小数 double既可以存小数也可以存整数
  double num3 = 3.14;
  num3 = 3;
  print(num3);
  // 字符串拼接 优先运算使用${}包起来
  String str1 = '小红';
  String str2 = '$str1你好，我还是哈哈';
  print(str2);
  // 换行
  String str3 = '''
你好，
我还是哈哈
''';
  print(str3);
  // 布尔 bool
  bool flag = true;
  print(flag);
  //列表类型
  List<String> xxx = ['小明', '小红', '小花'];
  print(xxx.length);
  print(xxx[1]);
  xxx[1] = '小芳';
  print(xxx);
  // 类似push，末尾添加元素
  xxx.add('消化');
  print(xxx);
  print(xxx[xxx.length - 1]);
  print(xxx.last);
  xxx.addAll(['小刘', '小牛']);
  print(xxx);
  // 插入某个元素
  xxx.insert(1, '新来的');
  print(xxx);
  // 删除某个元素
  xxx.remove('消化');
  print(xxx);
  xxx.removeAt(0);
  print(xxx);
  // 遍历
  xxx.forEach((item) {
    print(item);
  });

  // Map 字典 类似js中的对象
  Map<String, String> map = {
    'name': 'xxx',
    'age': '18',
    'sex': '男',
    
  };
  print(map['name']);
  // 修改数据
  map['name'] = '小明';
  map['sex'] = '女';
  print(map);
  // 遍历
  map.forEach((key, value) {
    print('$key:$value');
  });
  // 移除某个元素
  map.remove('name');
  print(map);
  // 清除所有元素
  map.clear();
  print(map);
}
